#ifndef ORG_LATESTBIT_SMARTOBJECTS_TESTMODEL_SIMPLECHILDSTRUCTURE_INL
#define ORG_LATESTBIT_SMARTOBJECTS_TESTMODEL_SIMPLECHILDSTRUCTURE_INL













namespace org_latestbit_smartobjects_testmodel {
inline SimpleChildStructure::SimpleChildStructure()




{}

inline SimpleChildStructure::SimpleChildStructure(const ISimpleChildStructure& src)




{
    copyFrom(src);
}

inline void SimpleChildStructure::operator = (const ISimpleChildStructure& src)
{
    copyFrom(src);
}


inline SimpleChildStructure::~SimpleChildStructure() {
}

inline const std::string& SimpleChildStructure::getObjectType() const {
    const static std::string OBJECT_TYPE =  "org.latestbit.smartobjects.testmodel.SimpleChildStructure";
    return OBJECT_TYPE;
}




inline  const  std::string& SimpleChildStructure::getStrChildVal() const {
    return strChildVal;
}

inline std::string& SimpleChildStructure::refStrChildVal() {
    return strChildVal;
}


inline void SimpleChildStructure::setStrChildVal(const std::string& value) {
    strChildVal = value;
}





inline void SimpleChildStructure::serialize(IDataTypesCoder* coder, IDataEncrypter* encrypter, ByteBuffer* writeBuffer) const {
    coder->encodeStructureDataTypeBegin(writeBuffer);
    unsigned int beginPartPos = 0;
    // Serialization fields for SimpleChildStructure:
    beginPartPos = coder->encodeNamedDataPartBegin("SimpleChildStructure", writeBuffer);
    coder->encodeString(strChildVal, writeBuffer);
    coder->encodeNamedDataPartEnd(beginPartPos, writeBuffer);
    // Serialization fields for SimpleStructure:
    beginPartPos = coder->encodeNamedDataPartBegin("SimpleStructure", writeBuffer);
    coder->encodeBigInteger(intVal, writeBuffer);
    coder->encodeString(strVal, writeBuffer);
    coder->encodeNamedDataPartEnd(beginPartPos, writeBuffer);
    coder->encodeStructureDataTypeEnd(writeBuffer);
}

inline void SimpleChildStructure::deserialize(IDataTypesCoder* coder, IDataEncrypter* encrypter,  ByteBuffer* readBuffer) {
    if(coder->decodeStructureDataTypeBegin(readBuffer)) {
        unsigned int beginPartPos = 0;
        // Deserialization fields for SimpleChildStructure:
        beginPartPos = coder->decodeNamedDataPartBegin("SimpleChildStructure", readBuffer);
        coder->decodeString(strChildVal, readBuffer);
        coder->decodeNamedDataPartEnd(beginPartPos, readBuffer);
        // Deserialization fields for SimpleStructure:
        beginPartPos = coder->decodeNamedDataPartBegin("SimpleStructure", readBuffer);
        coder->decodeBigInteger(intVal, readBuffer);
        coder->decodeString(strVal, readBuffer);
        coder->decodeNamedDataPartEnd(beginPartPos, readBuffer);
        coder->decodeStructureDataTypeEnd(readBuffer);
    }
}

inline void SimpleChildStructure::copyFrom(const ISimpleChildStructure& src) {
    strChildVal = src.getStrChildVal();
}
}

#endif // ORG_LATESTBIT_SMARTOBJECTS_TESTMODEL_SIMPLECHILDSTRUCTURE_INL
